package com.ruoyi.system.domain;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excel.ColumnType;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * MBTI选项对象 mbti_option
 * 
 * @author ruoyi
 * @date 2025-01-21
 */
public class MbtiOption extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 选项ID */
    @Excel(name = "选项ID", cellType = ColumnType.NUMERIC)
    private Long optionId;

    /** 题目ID */
    @Excel(name = "题目ID", cellType = ColumnType.NUMERIC)
    @NotNull(message = "题目ID不能为空")
    private Long questionId;

    /** 选项内容 */
    @Excel(name = "选项内容")
    @NotBlank(message = "选项内容不能为空")
    private String optionText;

    /** 选项值(A/B或1-5分) */
    @Excel(name = "选项值")
    @NotBlank(message = "选项值不能为空")
    @Size(min = 0, max = 10, message = "选项值不能超过10个字符")
    private String optionValue;

    /** 选项分值 */
    @Excel(name = "选项分值", cellType = ColumnType.NUMERIC)
    @NotNull(message = "选项分值不能为空")
    private Integer score;

    /** 倾向性(E/I, S/N, T/F, J/P) */
    @Excel(name = "倾向性")
    @NotBlank(message = "倾向性不能为空")
    @Size(min = 0, max = 10, message = "倾向性不能超过10个字符")
    private String tendency;

    /** 选项顺序 */
    @Excel(name = "选项顺序", cellType = ColumnType.NUMERIC)
    @NotNull(message = "选项顺序不能为空")
    private Integer optionOrder;

    public void setOptionId(Long optionId) 
    {
        this.optionId = optionId;
    }

    public Long getOptionId() 
    {
        return optionId;
    }

    public void setQuestionId(Long questionId) 
    {
        this.questionId = questionId;
    }

    public Long getQuestionId() 
    {
        return questionId;
    }

    public void setOptionText(String optionText) 
    {
        this.optionText = optionText;
    }

    public String getOptionText() 
    {
        return optionText;
    }

    public void setOptionValue(String optionValue) 
    {
        this.optionValue = optionValue;
    }

    public String getOptionValue() 
    {
        return optionValue;
    }

    public void setScore(Integer score) 
    {
        this.score = score;
    }

    public Integer getScore() 
    {
        return score;
    }

    public void setTendency(String tendency) 
    {
        this.tendency = tendency;
    }

    public String getTendency() 
    {
        return tendency;
    }

    public void setOptionOrder(Integer optionOrder) 
    {
        this.optionOrder = optionOrder;
    }

    public Integer getOptionOrder() 
    {
        return optionOrder;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("optionId", getOptionId())
            .append("questionId", getQuestionId())
            .append("optionText", getOptionText())
            .append("optionValue", getOptionValue())
            .append("score", getScore())
            .append("tendency", getTendency())
            .append("optionOrder", getOptionOrder())
            .toString();
    }
}
